idea中编写spark程序并打包到集群执行

您所在的位置:网站首页 idea spark插件 idea中编写spark程序并打包到集群执行

idea中编写spark程序并打包到集群执行

2024-07-15 09:59| 来源: 网络整理| 查看: 265

本篇主要介绍了如何使用IDEA在本地打包Spark应用程序(以K-Means为例),并提交到集群执行。

1、 安装JDK与Scala SDK

JDK和Scala SDK的安装在这里不再赘述,需要注意的是:要设置好环境变量,这样新建项目时就能自动检测到对应的版本,同时版本最好不要太高,以避免版本不兼容的问题,本篇采用的是JDK 8.0与Scala 2.10.6。 JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/ Scala下载地址:http://www.scala-lang.org/download/

2、 安装IDEA

IDEA 全称 IntelliJ IDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一, IDEA每个版本提供Community(社区版)和Ultimate(商业版)两个edition,其中Community是完全免费的,Ultimate版本可以试用30天,下载地址:http://www.jetbrains.com/idea/download/

2.1 安装Scala插件

根据安装向导安装好IDEA后,需要安装scala插件,有两种途径可以安装scala插件(本篇已经安装好了scala插件,故在这一步作更新):

启动IDEA -> Welcome to IntelliJ IDEA -> Configure -> Plugins -> Install JetBrains plugin… -> 找到scala后安装。启动IDEA -> Welcome to IntelliJ IDEA -> Open Project -> File -> Settings -> plugins -> Install JetBrains plugin… -> 找到scala后安装。

安装scala插件

2.2 设置IDEA风格

如果想使用那种酷酷的黑底界面,可以在File -> Settings -> Appearance -> Theme选择Darcula,保存后重新进入即可。

3、 新建Scala项目

3.1 单击file->new project,选择Scala,如果没有安装scala插件就没有这个选项,在项目的基本信息中填写项目名称、项目所在位置以及对应的Project SDK和Scala SDK(环境变量配置好了会自动匹配)。

这里写图片描述

3.2 设置项目structure

创建好项目后,可以看到现在还没有源文件,只有一个存放源文件的目录src以及存放工程其他信息的杂项。通过双击src目录或者点击菜单上的项目结构图标可以打开项目配置界面,src单击右键选择“new folder”添加src->main->scala,并设置为Sources类型,如下图所示:

这里写图片描述

3.3 配置Library

选择Libraries目录,添加Scala SDK Library,这里选择scala-2.10.6版本。添加Java Library,选择spark-assembly-1.6.1-hadoop2.2.0.jar(在spark的lib中可以找到),本篇将一些常用的JAR包放到了一个文件夹,故在此添加的是sparklib。

这里写图片描述

3.4 编写程序

在src->main->scala下创建helloword包,在该包中添加kmeans对象文件(新建scala类,在弹出的框中kind选择Object),具体代码如下所示,完成之后的整体结构如下图所示:

import org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.mllib.clustering.KMeans import org.apache.spark.mllib.linalg.Vectors object kmeans{ def main(args: Array[String]) { // 设置运行环境 val conf = new SparkConf().setAppName("Kmeans") val sc = new SparkContext(conf) // 从HDFS中装载数据集 val data = sc.textFile("input/kmeans_data.txt") val parsedData = data.map(s => Vectors.dense(s.split(" ").map(_.toDouble))) // 将数据集聚类,3个类,20次迭代,进行模型训练形成数据模型 val numClusters = 2 val numIterations = 20 val model = KMeans.train(parsedData, numClusters, numIterations) // 打印数据模型的中心点 println("Cluster centers:") for (c


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3